package com.ruoyi.degree.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 通知与提醒对象 wechat_notify_remind
 * 
 * @author ruoyi
 * @date 2025-07-30
 */
public class WechatNotifyRemind extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 操作者的ID，三个0代表是系统发送的； */
    @Excel(name = "操作者的ID，三个0代表是系统发送的；")
    private Long senderId;

    /** 操作者用户名 */
    @Excel(name = "操作者用户名")
    private String senderName;

    /** 操作者的动作，如：赞了、评论了、喜欢了、捐款了、收藏了 */
    @Excel(name = "操作者的动作，如：赞了、评论了、喜欢了、捐款了、收藏了")
    private String senderAction;

    /** 目标对象ID */
    @Excel(name = "目标对象ID")
    private Long objectId;

    /** 目标对象内容或简介，比如：文章标题 */
    @Excel(name = "目标对象内容或简介，比如：文章标题")
    private String object;

    /** 被操作对象类型，如：人、文章、活动、视频等:1:收藏 */
    @Excel(name = "被操作对象类型，如：人、文章、活动、视频等:1:收藏")
    private Long objectType;

    /** 接收者的ID */
    @Excel(name = "接收者的ID")
    private Long userId;

    /** 消息内容，由提醒模版生成，需要提前定义 */
    @Excel(name = "消息内容，由提醒模版生成，需要提前定义")
    private String message;

    /** 是否阅读，默认未读 */
    @Excel(name = "是否阅读，默认未读")
    private Long status;

    /** 阅读时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "阅读时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date readAt;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date createdAt;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date updatedAt;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Date deletedAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public Long getSenderId() {
        return senderId;
    }

    public void setSenderId(Long senderId) {
        this.senderId = senderId;
    }

    public void setSenderName(String senderName)
    {
        this.senderName = senderName;
    }

    public String getSenderName() 
    {
        return senderName;
    }

    public void setSenderAction(String senderAction) 
    {
        this.senderAction = senderAction;
    }

    public String getSenderAction() 
    {
        return senderAction;
    }

    public void setObjectId(Long objectId) 
    {
        this.objectId = objectId;
    }

    public Long getObjectId() 
    {
        return objectId;
    }

    public void setObject(String object) 
    {
        this.object = object;
    }

    public String getObject() 
    {
        return object;
    }

    public void setObjectType(Long objectType) 
    {
        this.objectType = objectType;
    }

    public Long getObjectType() 
    {
        return objectType;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setMessage(String message) 
    {
        this.message = message;
    }

    public String getMessage() 
    {
        return message;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setReadAt(Date readAt) 
    {
        this.readAt = readAt;
    }

    public Date getReadAt() 
    {
        return readAt;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public void setDeletedAt(Date deletedAt) 
    {
        this.deletedAt = deletedAt;
    }

    public Date getDeletedAt() 
    {
        return deletedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("senderId", getSenderId())
            .append("senderName", getSenderName())
            .append("senderAction", getSenderAction())
            .append("objectId", getObjectId())
            .append("object", getObject())
            .append("objectType", getObjectType())
            .append("userId", getUserId())
            .append("message", getMessage())
            .append("status", getStatus())
            .append("readAt", getReadAt())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("deletedAt", getDeletedAt())
            .toString();
    }
}
